Interrupt program module

ABSTRACT

The interrupt program module is implemented by a computer when the computer receives an interrupt instruction for supplying information indicating states of processings of the computer. The computer sequentially executes predetermined processings to a monitoring unit so as to communicate the information therebetween. The interrupt program module includes deciding whether or not executing an interrupt processing having function to supply the monitoring information based on given information when the computer receives the interrupt instruction at a previously set desired time during the execution of processings. The interrupt program module further includes supplying the monitoring information relating to the processing immediately before the decision to the monitoring unit when the execution of the interrupt processing having monitoring function is decided in the decision. The interrupt program module further includes canceling an interrupt processing after the monitoring information is supplied to the monitoring unit.

BACKGROUND OF THE INVENTION

[0001] The invention relates to a computer such as an MCU (Micro Controller Unit) which can be built in various electronic equipment, particularly to an interrupt program module for performing a monitoring function for the computer.

[0002] There is a type of an MCU, among MCUs that are typically widely used as a so-called one-chip microcomputer, provided with an on-chip debugging function for implementing debugging processing of a program inside the chip thereof. According to the on-chip debugging function, an internal state of the MCU can be monitored from an external device without using an expensive emulator, thereby analyzing fault of the program.

[0003] When utilizing such a monitoring function, the MCU can be connected to an external monitoring unit so as to communicate there with via a communication mechanism such as a conventionally well known UART (Universal Asynchronous Receiver/Transmitter). When the monitoring function is performed, information read from a memory device such as a RAM (Random Access Memory), a ROM (Read Only Memory) and an SFR (Special Function Register) provided respectively inside the MCU is appropriately supplied to and analyzed by the monitoring unit.

[0004] Meanwhile, the program of the MCU set forth above is generally provided with a plurality of processing loops each constituting a loop, wherein each processing loop is selectively implemented via a branch decision step. Each processing loop is provided with one or plural program modules for implementing one or plural processing steps capable of executing a series of processings. When the processing steps terminate, a program returns to the branch decision step by an instruction of the loop. It is possible to monitor a state of each desired processing loop to be implemented immediately before returning to the branch decision by inserting the program module for such a monitoring function into processing loops to be parallel therewith, namely, by selectively inserting the program module as a decision branch in the branch decision step.

[0005] However, according to the conventional program, since the processing loop or other loops for monitoring function can be selectively implemented via the branch, for example, even if it is intended to investigate the state of processing loops comprising a plurality of processing steps before or after each step is implemented, it is impossible to move to the monitoring function during the implementation of the processing loops.

[0006] Further, in cases where the program module falls in an uncontrolled state to stop the proceeding of the loop during the implementation of the processing loop, the returning to the branch decision step is prevented, and hence it is impossible to perform the monitoring function.

SUMMARY OF THE INVENTION

[0007] It is an object of the invention to provide an interrupt program module capable of investigating a state of processing before or after a desired step among a plurality of processing steps constituting processing loops which are implemented by an MCU.

[0008] The invention is developed based on a basic concept that the monitoring function set forth above is inserted into each processing loop as an interrupt processing which can be executed at a predetermined desired time.

[0009] The interrupt program module according to the invention is implemented by a computer when the computer receives an interrupt instruction for supplying information indicating states of processings of the computer. The computer sequentially executes predetermined processings to a monitoring unit connected to the computer so as to communicate the information therebetween. The interrupt program module causes the computer to implement, including deciding whether or not executing an interrupt processing having function to supply the monitoring information based on given information when the computer receives the interrupt instruction at a previously set desired time during the execution of processings. The interrupt program module further includes supplying the monitoring information relating to the processing immediately before the decision to the monitoring unit when the execution of the interrupt processing having monitoring function is decided in the decision. The interrupt program module further includes canceling an interrupt processing after the monitoring information is supplied to the monitoring unit.

BRIEF DESCRIPTION OF THE DRAWINGS

[0010]FIG. 1 is a flowchart for explaining the first preferred embodiment;

[0011]FIG. 2 is a block diagram for explaining the first preferred embodiment;

[0012]FIG. 3 is a flowchart for explaining the second preferred embodiment; and

[0013]FIG. 4 is a flowchart for explaining the third preferred embodiment.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] The invention is now described with reference to the first to third preferred embodiments shown in FIGS. 1 to 4.

[0015]FIG. 1 shows a flowchart for explaining a program 101 according to the first preferred embodiment of the invention, wherein an interrupt program module 10 of the invention is built in the program 101.

[0016] The program 101 is built in an MCU (Micro Controller Unit) 2 mounted on a wiring board 1 as shown in FIG. 2 and it is used in an environment having no OS (Operating System). The wiring board 1 on which the MCU 2 is mounted serves as a so-called target board, e.9. for performing an evaluation test of the MCU2. The MCU 2 is provided with a storage section 2 a for storing therein the program 101, a controller section 2 b for executing the program 101, a timer section 2 c and an auxiliary timer section 2 d, described later respectively.

[0017] The MCU 2 is connected to an external analyzing unit 3 for monitoring a state of processing of the program 101 so as to mutually communicate therebetween by way of a communication mechanism such as a UART, not shown, in order to decide whether or not the program 101 built in the MCU 2 operates normally.

[0018] A signal indicating “ON” or “OFF” showing whether or not the monitoring can be effected is given from the external analyzing unit 3 to a given input port of the MCU 2. A general port of the MCU 2 can be used as the given input port, and this port is treated as hereinafter and referred to a switch in the first preferred embodiment.

[0019] A main loop program 11 (hereinafter referred to simply as main loop 11) by which a processing loop 11 a or 11 b is selectively implemented via a branch decision step S1 and an interrupt processing program 12 for an interrupt processing which is executed during the main loop 11, if need be, are respectively built in the program 101 as shown in FIG. 1. Both the main loop 11 and the interrupt processing program 12 are stored in a given area of the storage section 2 a of the MCU 2.

[0020] In the main loop 11, a processing step S2 is implemented when one processing loop 11 a is selected, while processing steps S3 and S4 are sequentially implemented when the other processing loop 11 b is selected. The program returns to the branch decision step S1 by a given loop instruction upon completion of all the steps in the processing loops 11 a and 11 b. The MCU 2 executes a main task to be executed by itself when the main loop 11 is implanted.

[0021] At least one program module for executing interrupt processing relative to the main loop 11 is built in the interrupt processing program 12. The program module for executing interrupt processing is executed at high priority compared with processings during the implementation of the main loop 11, which has been well known so far.

[0022] Although the interrupt program module 10 having monitoring function of the invention is illustrated as the interrupt processing module according to the first preferred embodiment shown in FIG. 1, for example, an interrupt program module for executing a given task inside the MCU 2 can be appropriately added to the interrupt program module 10 in the same manner as the conventional interrupt processing. Other modules except the interrupt program module 10 having monitoring function can be implemented during the implementation of the main loop 11, if need be, for example, in response to the instruction from the controller section 2 b of the MCU 2.

[0023] The interrupt program module 10 of the invention is interrupted in the main loop 11 every time the MCU 2 receives an interrupt issuance instruction 10 a from the external analyzing unit 3. The time for issuing the interrupt issuance instruction 10 a is previously set by the external analyzing unit 3, and according to the first preferred embodiment, the interrupt issuance instruction 10 a is issued before or after all the processing steps in the processing loop 11 a and 11 b are implemented.

[0024] The interrupt program module 10 comprises a decision step S11 for deciding a state of the switch of the MCU 2 when it is interrupted, a monitoring processing step S12 for performing monitoring function so as to cause the external analyzing unit 3 to monitor a processing step of the main loop 11 of the MCU 2 when the switch is decided to be “ON”, and a returning step S13 for canceling the interrupt processing of the interrupt program module 10 and returning to the main loop 11 when the switch is decided to be “OFF” in the decision step S11 or upon completion of the monitoring in the monitoring processing step S12.

[0025] When the monitoring processing is executed in the interrupt program module 10, monitoring information indicating the state of processing of the MCU 2 immediately before receiving the interrupt issuance instruction 10 a is supplied from the MCU 2 to the external analyzing unit 3.

[0026] In the first preferred embodiment, when one processing loop 11 a is selected in the branch decision step S1 of the main loop 11 as shown in FIG. 1, the interrupt issuance instruction 10 a is issued before the processing step S2 is implemented. When the interrupt issuance instruction 10 a is issued, a state of the switch is decided in the MCU 2 based on the interrupt program module 10 (step S11).

[0027] When a state of the switch is decided to be “OFF” based on this decision, the program returns, namely, the interrupt processing is cancelled to start the processing step S2 of the main loop 11 (step S13) without executing the monitoring processing by the controller section 2 b.

[0028] If the state of switch is decided to be “ON” in the decision step S1, the monitoring processing is executed by the controller section 2 b (step S12). Upon completion of the supply of the monitoring information from the MCU 2 to the external analyzing unit 3 in the step S12, the program goes to a step S13 where the program returns to the main loop 11.

[0029] When the program returns from the interrupt program module 10 to the main loop 11, the processing step S2 is implemented. The interrupt issuance instruction 10 a is reissued again before returning to the branch decision step S1 upon completion of the processing step S2. When the interrupt issuance instruction 10 a is reissued, the interrupt program module 10 is interrupted and the steps S10 to S13 are appropriately implemented in the same manner as the case set forth above, then the program returns to the branch decision step S1.

[0030] If the other processing loop 11 b is selected by the branch decision in the step S1, the program returns to the branch decision step S1 after the interrupt program module 10 is interrupted in the same manner as one processing loop 11 a before or after the processing steps S3 and S4 are implemented.

[0031] According to the interrupt program module 10 of the first preferred embodiment of the invention, since the monitoring processing is executed as an interrupt processing relative to the main loop 11, the monitoring processing can be executed without returning to the branch decision step S1 in the processing loops 11 a and 11 b of the main loop 11. As a result, the state between the respective processing steps of the processing loops can be monitored.

[0032] Although the first preferred embodiment is exemplified as the case where the interrupt issuance instruction 10 a is issued before or after all the steps S2 to S4 of the main loop 11 are implemented, it is possible to set the time when the interrupt issuance instruction 10 a is issued before or after a desired processing step is implemented in place of the exemplified case.

[0033] Other interrupt module can be added to the interrupt processing program 12 in addition to the interrupt program module having monitoring function set forth above. At this time, correct monitoring information relating to the result of processing can be obtained by prohibiting the other module interrupt processing during the implementation of the desired processing step to monitor the result of the execution. Such a prohibition of interrupt processing can be executed while controlled by the external analyzing unit 3 using a monitoring function of the interrupt program module 10 which is interrupted when the interrupt issuance instruction 10 a is issued, for example, immediately before a desired processing step is implemented.

[0034]FIG. 3 is a flowchart showing a program 102 according to the second preferred embodiment of the invention, wherein a timer interrupt program module 20 is built in the program 102.

[0035] The timer interrupt program module 20 capable of automatically executing monitoring processing by setting a timer, described later, is built in an interrupt processing program 12 of the program 102 shown in FIG. 3 in addition to the interrupt program module 10 explained in the first preferred embodiment.

[0036] A timer section 2 c is provided in an MCU 2, and a desired time can be set at a timer section 2 c, for example, by an external analyzing unit 3 as shown in FIG. 2. A set desired time is counted at the timer section 2 c, and upon completion of the counting, namely, if time is up, which is notified to a controller section 2 b as an interrupt issuance instruction 20 b, described later.

[0037] A timer interrupt processing 20A to set a desired time for executing the monitoring processing at the timer section 2 c of the MCU 2 from the external analyzing unit 3, and a timer interrupt processing 20B having a monitoring function which is the same as the interrupt program module 10 in the first preferred embodiment and is interrupted at a set desired time are built in the timer interrupt program module 20, respectively. The timer interrupt processing 20A is interrupted when an interrupt issuance instruction 20 a is issued from the external analyzing unit 3 to the MCU 2 during the implementation of the main loop 11, and the timer interrupt processing 20B is interrupted at the time of issuance of the interrupt issuance instruction 20 b which is issued by the timer section 2 c of the MCU 2 at the subsequent time out.

[0038] An operation of the MCU 2 associated with the timer interrupt program module 20 is now described with reference to FIG. 3. A processing step S3 in a processing loop 11 b of the main loop 11 comprises task steps S3 a, S3 b and S3 c.

[0039] For example, if the processing loop 11 b is selected at a branch decision step S1 of the main loop 11, the interrupt issuance instruction 20 a is issued from the external analyzing unit 3 before the processing step S3 is implemented. When the interrupt issuance instruction 20 a is issued, the timer interrupt program module 20 is interrupted as set forth above, and the timer interrupt processing 20A is executed.

[0040] In the timer interrupt processing 20A, a desired time to execute the monitoring processing is set by the external analyzing unit 3 (step S21). A given time during which the monitoring processing is executed is set at the timer section 2 c between the task steps S3 b and S3 c in the processing step S3. Upon completion of the setting of the given time, the interrupt processing is cancelled so as to start the processing step S3 in the processing loop 11 b (step S22).

[0041] Upon completion of the cancellation of the interrupt processing, the task step S3 a of the processing step S3 is implemented in the main loop 11. Upon completion of the task step S3 b followed by the task step S3 a, a given time set at the timer section 2 c in the step 21 is up, and the interrupt issuance instruction 20 b is issued from the timer section 2 c to the controller section 2 b.

[0042] The timer interrupt processing 20B of the timer interrupt program module 20 is executed when the interrupt issuance instruction 20 b is issued. In the timer interrupt processing 202, a state of the switch of the external analyzing unit 3 showing the monitoring function, is decided (step S23). Subsequently, the monitoring processing appropriately in accordance with a state of the switch in the same manner as the steps S11 to S13 in the interrupt program module 10, as set forth in the first preferred embodiment, then the program returns to the main loop 11.

[0043] After returning from the timer interrupt processing 20B, the task step S3 c of the processing step S3 is implemented in the main loop 11. The interrupt issuance instruction 10 a is issued from the external analyzing unit 3 before the implementation of a processing step S4 followed by processing step S3 upon completion of the task step S3 c so that the interrupt program module 10 is executed in the same manner as the first preferred embodiment. Subsequently, if the interrupt processing is cancelled by the interrupt program module 10, the processing step S4 is implemented, then the interrupt program module 10 is executed again by the interrupt issuance instruction 10 a before the program returns to the branch decision step S1 upon completion of the processing step S4.

[0044] According to the timer interrupt program module 20 of the second preferred embodiment of the invention, there is an effect that a desired time when the timer interrupt processing 20B for performing monitoring function is interrupted can be set at the timer section 2 c inside the MCU 2 in addition to substantially the same effect as the first preferred embodiment. As a result, the timer interrupt processing 20B can be interrupted at correct time relative to the desired time during the implementation of the main loop 11. Further, when the timer section 2 c is appropriately controlled, the time during which a monitoring is performed can be relatively easily changed.

[0045]FIG. 4 is a flowchart for explaining a program 103 according to the third preferred embodiment of the invention, wherein an interrupt program module 30 is built in the program 103. In FIG. 4, the flowchart of the main loop 11 shown in the first and second preferred embodiments are omitted in the program 103, for brevity of explanation of drawing, but an interrupt processing program 12 is illustrated.

[0046] The interrupt program modules 10 and 20 explained with reference to the first and second preferred embodiments, and the interrupt program module 30 utilizing a watchdog timer function, described later, are built in the interrupt processing program 12, as shown in FIG. 4.

[0047] An MCU 2 is provided with an auxiliary timer section 2 d as shown in FIG. 2. A well known watchdog timer function for monitoring whether or not the program 103 operates normally is given to the auxiliary timer section 2d. The auxiliary timer section 2 d provided with the watchdog timer function counts given time which is previously set at the auxiliary timer section 2 d as a basic operation, and gives an instruction for resetting the execution of the program 103 to a controller section 2 b upon completion of the counting operation.

[0048] A signal for clearing the counted value is supplied from the controller section 2 b to the auxiliary timer section 2 d at the time before arriving the given time, namely, before the auxiliary timer section 2 d is time up relative to the basic operation. The auxiliary timer section 2 d starts new counting operation without executing the resetting instruction when time is up, upon reception of the clear signal at the auxiliary timer section 2 d while the counted value is returned to an initial value.

[0049] There is a case where the clear signal is not supplied from the controller section 2 b to the auxiliary timer section 2 d within the given period of time, if there occurs any abnormality such as generation of infinite loop during the execution of the program 103. Since the counted value is not returned to the initial value at the auxiliary timer section 2 d unless the clear signal is supplied to the auxiliary timer section 2 d, if a given time lapses while the clear signal is not given to the auxiliary timer section 2 d, an instruction for resetting the execution of the program 103 is issued from the auxiliary timer section 2 d to the controller section 2 b.

[0050] From this, it is considered that the clear signal is supplied appropriately from the controller section 2 b to the auxiliary timer section 2 d during a period where the counted value is periodically cleared at the auxiliary timer section 2 d. Accordingly, it is possible to monitor whether or not the program 103 for operating the controller section 2 b operates normally by deciding whether or not the counted value is cleared.

[0051] The interrupt program module 30 in the third preferred embodiment utilizes the watchdog timer function at the auxiliary timer section 2 d, and hence the monitoring processing can be executed compulsorily, if need be, even if abnormality occurs during the implementation of the main loop 11.

[0052] The interrupt program module 30 comprises a step S31 for deciding a state of the switch relating to the monitoring function when the counted value at the auxiliary timer section 2 d is not cleared, a step S32 for resetting the execution of the program 103 when the switch is “OFF”, a step S33 for executing the monitoring processing when the switch is “ON”, and a step S34 for canceling the interrupt processing upon completion of the monitoring processing.

[0053] According to the third preferred embodiment, during the implementation of the main loop 11, for example, if abnormality occurs during the progress of the program 103 before the timer interrupt processing 20B of the timer interrupt program module 20 is executed so that the counted value is not cleared at the auxiliary timer section 2 d as explained in the second preferred embodiment, the interrupt program module 30 is interrupted. In the MCU 2, the steps S31 to S34 are implemented appropriately based on the interrupt program module 30.

[0054] According to the interrupt program module 30 in the third preferred embodiment, even if the issuance of the interrupt instruction for monitoring function is prevented owing to the occurrence of abnormality in the program 103, there is an effect that the program can be moved to the monitoring processing compulsorily using the monitoring function of the watchdog timer at the auxiliary timer section 2 d in addition to the effect of the first and second preferred embodiments. As a result, monitoring information is supplied to the external analyzing unit 3, and hence the abnormality in the program 103 can be analyzed.

[0055] Although the interrupt program module having monitoring function is explained in the first to third preferred embodiments, the invention can provide record medium in which the interrupt program module for monitoring is recorded, and a computer capable of executing the interrupt processing based on the interrupt program module for monitoring.

[0056] According to the invention, it is possible to provide an interrupt program module capable of causing the computer to execute the interrupt processing having monitoring function without returning to the branch decision step during the execution of the processing loops built in the program of the computer. As a result, states of processing steps before and after a desired processing step of the processing loops can be monitored so that the program can be investigated in detail.

[0057] Further, according to the invention, it is possible to provide the storage medium in which the interrupt program module is stored and the computer capable of executing interrupt processing for monitoring function based on the interrupt program module.

[0058] The present invention may provide a method of interrupting a plurality of programs by a computer that is connected to a monitoring. The method includes deciding whether or not a state of the processing of program during the execution of the programs is decided to be monitored when receiving interrupt instruction at given time during the execution of a plurality of programs, and causing the monitoring unit to indicate states of processings when the monitoring is decided. 

What is claimed is:
 1. An interrupt program module to be executed by a computer when the computer receives an interrupt instruction for supplying information indicating states of processings of the computer, which sequentially consecutively a plurality of predetermined processings, to a monitoring unit connected to the computer so as to communicate therebetween, said interrupt program module causing the computer to implement, the program module comprising: deciding whether or not executing an interrupt processing having function to supply the monitoring information based on given information when the computer receives the interrupt instruction at a previously set desired time during the execution of a plurality of processings; supplying the monitoring information relating to the processing immediately before the decision to the monitoring unit when the execution of the interrupt processing having monitoring function is decided in the decision; and canceling an interrupt processing after the monitoring information is supplied to the monitoring unit.
 2. The interrupt program module according to claim 1, wherein the cancellation is implemented by the computer when it is decided that the interrupt processing having monitoring function is not executed based on the decision.
 3. The interrupt program module according to claim 1, further comprising setting a desired time when the interrupt instruction is issued is implemented by the computer.
 4. The interrupt program module according to claim 3, further comprising implementing the decision step compulsorily when the interrupt instruction is not issued owing to the generation of abnormality before the interrupt instruction is issued to the computer, and a resetting step for executing a reset processing by said computer when non-execution of the interrupt processing having monitoring function in the auxiliary decision step is decided are executed by said computer, respectively.
 5. The interrupt program module according to claim 1, wherein the given information used in the decision step is information indicating whether or not to the interrupt processing having monitoring function is executed.
 6. Record medium storing therein an interrupt program module to be executed by a computer when the computer receives an interrupt instruction for supplying information indicating states of processings of the computer, which sequentially consecutively a plurality of predetermined processings, to a monitoring unit connected to the computer so as to communicate therebetween, the record medium comprising: deciding whether or not executing an interrupt processing having function to supply the monitoring information based on given information when the computer receives the interrupt instruction at a previously set desired time during the execution of a plurality of processings; supplying the monitoring information relating to the processing immediately before the decision step to the monitoring unit when the execution of the interrupt processing having monitoring function is decided in the decision step; and canceling an interrupt processing after the monitoring information is supplied to the monitoring unit.
 7. The record medium according to claim 6, wherein the interrupt program module is stored in the record medium for causing the computer to execute the cancellation step when it is decided that the interrupt processing having monitoring function is not executed based on the decision.
 8. A computer for sequentially executing a plurality of predetermined processings and supplying monitoring information indicating states of its own processings to a monitoring unit connected to the computer so as to communicate therebetween, said computer comprising: a decision part for deciding whether or not it executes interrupt processing having function to supply the monitoring information based on given information when receiving the interrupt instruction at a previously set desired time during the execution of a plurality of processings; an information supply part for supplying the monitoring information relating to the processing immediately before the decision step to the monitoring unit when the execution of interrupt processing having monitoring function is decided by the decision part; and a canceling processing part for canceling interrupt processing after the monitoring information is supplied to the monitoring unit.
 9. The computer according to claim 8, wherein the canceling processing part cancels the interrupt processing when the interrupt processing having monitoring function is not executed by the decision part.
 10. The computer according to claim 8, further comprising a timer setting part for setting the desired time when the interrupt instruction is issued.
 11. The computer according to claim 10, wherein said computer further comprises an auxiliary decision part for compulsorily deciding when the interrupt instruction is not issued owing to the generation of abnormality before the interrupt instruction is issued, and a resetting processing part for resetting itself when the non-execution of the interrupt processing having monitoring function is decided by the auxiliary decision part. 